package com.ss.summer.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ss.summer.entity.SummerInstance;
import com.ss.summer.entity.SummerRecord;
import com.ss.summer.service.enmus.HasAuthType;

import java.util.List;

/**
 * 搜索服务
 * @Author: 夏十七
 * @Date: 2019/7/31 21:46
 * @Version 1.0
 */
public interface SummerSearch {

    /**
     * 获取待审核的列表
     * @param apiPath 凭证
     * @param memberId 用户id
     * @return 待审核的实例
     */
    List<SummerInstance> findWaitAudit(String apiPath, String memberId);

    /**
     * 获取待审核的列表分页
     * @param apiPath 凭证
     * @param memberId 用户id
     * @param currentPage  多少页
     * @param limit 一页的大小
     * @return 待审核的实例分页
     */
    IPage<SummerInstance> findWaitAudit(String apiPath, String memberId, int currentPage, int limit);

    /**
     * 获取有审核权限的列表
     * @param apiPath 凭证
     * @param memberId 用户Id
     * @param type 类型 详见枚举类属性
     * @return LIST
     */
    List<SummerInstance> findHasAuth(String apiPath, String memberId, HasAuthType type);


    /**
     * 获取有审核权限的列表
     * @param apiPath 凭证
     * @param memberId 用户Id
     * @param type 类型 详见枚举类属性
     * @param currentPage 当前页
     * @param limit  每页大小
     * @return LIST
     */
    IPage<SummerInstance> findHasAuth(String apiPath, String memberId, HasAuthType type,int currentPage ,int limit);

    /**
     * 获取已审核的列表
     * @param apiPath 凭证
     * @param memberId 用户id
     * @return
     */
    List<SummerInstance> findAudited(String apiPath, String memberId);

    /**
     * 获取已审核的列表分页
     * @param apiPath 凭证
     * @param memberId 用户id
     * @param currentPage  多少页
     * @param limit 一页的大小
     * @return
     */
    IPage<SummerInstance> findAudited(String apiPath, String memberId, int currentPage, int limit);

    /**
     * 查询审核记录
     * @param insId  实例id
     * @return 审核记录
     */
    List<SummerRecord> findRecord(Integer insId);

    /**
     * 查询审核记录
     * @param apiPath 凭证
     * @param applyId 申请Id
     * @return 审核记录
     */
    List<SummerRecord> findRecord(String apiPath, Integer applyId);





}
